1 例示用データの用意

前回同様、今回も test_scores.xlsx のデータを使う

## # A tibble: 6 x 5
##   クラス 名前   数学  英語  国語
##   <chr>  <chr> <dbl> <dbl> <dbl>
## 1 C      安藤     67    78    45
## 2 A      藤村     55    73    72
## 3 B      大泉     47    55    73
## 4 B      木村     78    71    85
## 5 A      鈴井     51    74    61
## 6 C      望月     79    84    75

2 描画用パッケージ

グラフの描画で役立つパッケージを紹介する

2.1 ggplot2

{ggplot2}というグラフの描画用パッケージは綺麗なグラフを描くことができる。

ggplotは次のように2つ以上の手順をとり,2つ以上の関数を+でつなげていき,レイヤーを重ねるように描画していく。

  1. キャンバスを用意する(ggplot(データフレーム, aes(x, y))
  2. グラフを用意する(geom_histogram()などgeom_なんたらという関数)
  3. グラフの装飾のための関数を使う場合は,さらにレイヤーを重ねていく

※R Studio Cloudで図を描くとき、タイトルや軸タイトルに日本語を使うと文字化けしてしまう。したがって、英語やローマ字を使うか、日本語を使いたい場合はパソコンにRとR Studioをインストールして使用する必要がある。(2019.4.22時点)

2.2 plotly

{plotly}パッケージは動的なグラフ(マウスを乗せると情報が表示されたりするグラフ)を描くことができる。

ggplotly()関数を使うと,{ggplot2}で描いたグラフを動的なものに変換できる。

※R Studio Cloudでpgglotyを使うと、日本語表示がggplot2そのものよりも適切に表示されることがあるが、完完璧ではない。(2019.4.22時点)

3 データの分布を要約する

3.1 平均・分散など

データの分布を要約するための指標(要約統計量)の代表的なものが平均(mean)と分散(variance)である。

  • 平均(mean):\(n\)個のデータ\(x_i\)の総和を,サンプルサイズ\(n\)で割ったもの。

\[ \bar{x} = \frac{1}{n}\sum_{i=1}^n x_i \]

  • 分散(variance):平均からの差の2乗和の平均

\[ \sigma^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-\bar{x})^2 \]

ただし,Rのvar()関数の算出する値は、母集団の分散(母分散)の不偏推定量としての分散すなわち不偏分散である。

\[ s^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2 \]

## [1] 333.1481

分散の単位は元の単位の2乗であるため,それを元の単位に戻すために平方根をとったものが標準偏差(standard deviation)である。

## [1] 18.25234

3.2 要約統計量

summary()関数は,データフレームの各行に関する代表値などの情報を取得することができる関数である。

##     クラス              名前                数学             英語      
##  Length:40          Length:40          Min.   : 42.00   Min.   :42.00  
##  Class :character   Class :character   1st Qu.: 51.75   1st Qu.:50.75  
##  Mode  :character   Mode  :character   Median : 65.00   Median :65.50  
##                                        Mean   : 66.58   Mean   :68.33  
##                                        3rd Qu.: 80.50   3rd Qu.:82.25  
##                                        Max.   :100.00   Max.   :99.00  
##       国語       
##  Min.   : 40.00  
##  1st Qu.: 51.00  
##  Median : 67.50  
##  Mean   : 66.88  
##  3rd Qu.: 79.50  
##  Max.   :100.00

「クラス」と「名前」は文字列(character)型なので,Length(行数,標本数)が40であることくらいしか表示されない。

「英語」「国語」「数学」は整数(integer)型なので,代表値などの要約統計量(summary statistics)が表示されている。

それぞれの統計量の意味は

  • Min.が最小値
  • 1st Qu.第一四分位数(1st quantile):「データを小さいものから順に並べた時に標本数の4分の1の位置(下位25%)にくる値」
  • Median中央値(median):「データを小さい順に並べた時に標本数の2分の1の位置にくる値」
  • Mean平均値(mean):「データの総計をデータの個数で割ったもの」\(\sum_{i=1}^n x_i/n\)
  • 3rd Qu.第三四分位数(3rd quantile):「データを小さい順に並べた時に標本数の4分の3の位置(75%)にくる値」
  • Max.が最大値

である。これらのうちMean以外の5つの統計量をまとめて五数要約という。

平均値は外れ値(極端に高かったり低かったりする値)の影響を受けやすいため,これらの統計量を見ることで,中央値と平均値が大きく異なるデータは外れ値があったりデータの分布に歪みがあることが推測できるわけである。

4 2変数の関係を要約する

4.1 相関係数

相関係数(correlation coefficient)は2つの量的変数の直線的な関係の強さを測るもので,次の式で定義される

\[ \begin{align} x\text{と}y\text{の相関係数}r &= \frac{x\text{と}y\text{の共分散}}{x\text{の標準偏差}\times y\text{の標準偏差}} \\ &= \frac{\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})} {\sqrt{\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})^2} \sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \bar{y})^2}} \end{align} \]

Rではcor()で計算できる。相関係数は-1から+1の範囲の値をとり,絶対値で1に近いほど関係が強いことを示す。

## [1] 0.160109

4.2 相関行列

相関係数が入った行列を相関行列という

##          数学       英語       国語
## 数学 1.000000 0.16010896 0.22593799
## 英語 0.160109 1.00000000 0.04096556
## 国語 0.225938 0.04096556 1.00000000

5 1変数のグラフ

5.1 ヒストグラム

ヒストグラムは量的変数の分布を確認するには極めて有用なグラフである。

R本体の機能でヒストグラムを描く場合はhist()を使う

6 2変数のグラフ

6.1 散布図

2変数でグラフを描く場合,キャンバスにx(グラフ横軸)とy(グラフ縦軸)の両方を指定する。

そして散布図を描く場合はgeom_point()+でつなげればよい

6.2 折れ線グラフ

折れ線グラフはgeom_line()で描くことができる。

Excelで言うところの「マーカー付き折れ線グラフ」にしたい場合はgeom_point()を重ねればよい。

(参考)アメリカのGNP

上では説明の簡単のため散布図と同じデータを使ったが,折れ線グラフは本来は時系列データに使うのが望ましい。

そこで,以下ではRにあらかじめ収録されている練習用のデータセットのひとつであるlongleyを使った例をのせる。

このデータは1947~62年のアメリカのGNPや雇用者数などが収録されている(詳細はhelpを参照してほしい)。

##      GNP.deflator     GNP Unemployed Armed.Forces Population Year Employed
## 1947         83.0 234.289      235.6        159.0    107.608 1947   60.323
## 1948         88.5 259.426      232.5        145.6    108.632 1948   61.122
## 1949         88.2 258.054      368.2        161.6    109.773 1949   60.171
## 1950         89.5 284.599      335.1        165.0    110.929 1950   61.187
## 1951         96.2 328.975      209.9        309.9    112.075 1951   63.221
## 1952         98.1 346.999      193.2        359.4    113.270 1952   63.639

6.3 箱ひげ図

箱ひげ図は五数要約の統計量(最小値,第一四分位数,中央値,第三四分位数,最大値)をプロットすることで分布の概形を表示する図である。

6.4 バイオリンプロット

バイオリンプロットは、「カーネル密度推定」という手法で推定されたデータ分布の曲線を左右対称に描いたもので、異なるデータの分布を視覚的に比較できる。デフォルトでは最小値から最大値の範囲でプロットされ、geom_violin(trim = FALSE)にすると曲線の端はカットされない。

7 層別化

ggplot()関数の中に入れるaes()関数のfillcolorといった引数に質的変数を指定することで,色の塗り分けによる層別化ができる。

これにより3つ目の変数の情報を表現できる。